import phe as paillier

p = 1687642453241030024575625625399622474282139390061008599275292273097001924153092723528608873322033975350441099611224762081671499632932258416662504538368586813236628018059167628038088656535559462511371853492656240371984756300082101324543077134134839604558891748384682314845495578073364849309410481746080758214690273867283515907074628876477321457236576265805839606252040848631040262004309117626994605039755970010226170674879361328753719301256606503014577344309211687
q = 1882521174817949977841550151198590990374433717465795021058972091049853471478600180230944037873797085579758469017842588266636243813466891777552428620407210826528549378683004388342904994333112349690504690843179884781605188745937386703841035637513939393623784839775723416690572046599236801310617126918991066818234439219352057112357379998873243350789121487381279848267964623593634021607621134942684085841423384949380759403097948977206070943740069975252391623012088239
pk = paillier.PaillierPublicKey(p * q)
sk = paillier.PaillierPrivateKey(pk, p, q)

enc_pos_list = []
enc_neg_list = []
for i in range(100000 + 1):
    if i == 0:
        enc_num = pk.encrypt(i / 10000)
        enc_pos_list.append([hex(enc_num.ciphertext()), str(enc_num.exponent)])
    else:
        enc_num = pk.encrypt(i / 10000)
        enc_pos_list.append([hex(enc_num.ciphertext()), str(enc_num.exponent)])
        enc_num = pk.encrypt(-i / 10000)
        enc_neg_list.append([hex(enc_num.ciphertext()), str(enc_num.exponent)])
        if i % 100 == 0:
            print(i)
        if i % 10000 == 0:
            f = open('/home/dchen/FL/%d_p4.txt' % (i / 10000), 'w')
            for data in enc_pos_list:
                f.write("%s,%s\n" % (data[0], data[1]))
            for data in enc_neg_list:
                f.write("%s,%s\n" % (data[0], data[1]))
            f.close()

            enc_pos_list = []
            enc_neg_list = []
